<?php
namespace Servidor\Entity;

use Base\Entity\AbstractEntity;
use Doctrine\ORM\Mapping as ORM;

use Zend\Stdlib\Hydrator\ClassMethods;

/**
 * Entidade Atividade
 *
 * @ORM\Table(name="atividade")
 * @ORM\Entity(repositoryClass="Servidor\Repository\AtividadeRepository")
 */
class Atividade extends AbstractEntity {
	
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    protected $id;

    /**
     * @var string
     *
     * @ORM\Column(name="titulo", type="string", length=45, nullable=false)
     */
    protected $titulo;

    /**
     * @var string
     *
     * @ORM\Column(name="descricao", type="text", nullable=false)
     */
    protected $descricao;
    
    
    /**
     * @var integer
     *
     * @ORM\Column(name="indice", type="integer", nullable=false)
     */
    protected $indice;


	public function __construct(array $options = array()) {
	        
    	$hydrator = new ClassMethods();
    	$hydrator->hydrate($options,$this);
    }


    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set titulo
     *
     * @param string $titulo
     * @return Atividade
     */
    public function setTitulo( $titulo )
    {
        $this->titulo = $titulo;
    
        return $this;
    }

    /**
     * Get titulo
     *
     * @return string 
     */
    public function getTitulo()
    {
        return $this->titulo;
    }

    /**
     * Set descricao
     *
     * @param string $descricao
     * @return Atividade
     */
    public function setDescricao($descricao)
    {
        $this->descricao = $descricao;
    
        return $this;
    }

    /**
     * Get descricao
     *
     * @return string 
     */
    public function getDescricao()
    {
        return $this->descricao;
    }
    
    
    /**
     * @return the $indice
     */
    public function getIndice() {
        
    	return $this->indice;
    }
    
    
    /**
     * @param string $indice
     */
    public function setIndice($indice) {
        
    	$this->indice = $indice;
    	
    	return $this;
    }
    
    
    /**
     * Override
     * (non-PHPdoc)
     * @see \Base\Entity\AbstractEntity::toArray()
     */
    public function toArray() {
    	
    	return array(
    			'id'        => $this->getId(),
    			'titulo'    => $this->getTitulo(),
    			'descricao' => $this->getDescricao(),
	            'indice'    => $this->getIndice()
    	);
    }
}
